﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using GPSMap.Core.Misc.DAL;
using HTMapLib;
using HTMapLib.Classes;
using MapControl.Misc;
using MapControl.Misc.DAL;

namespace GPSMap
{
    public partial class frmPlane : Form
    {
        private Plane _objPlane;
        private PlaneRepository _objPlaneRespository;
        private frmPlaneList frmParent;
        
        public frmPlane(frmPlaneList frm)
        {
            InitializeComponent();
            frmParent = frm;
        }


        public frmPlane(frmPlaneList frm, Plane objPlane)
        {
            InitializeComponent();
            _objPlane = objPlane;
            frmParent = frm;
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                string code = txtPlaneCode.Text.Trim();
                string name = txtPlaneName.Text.Trim();

                //====================================================
                //Kiểm tra hợp lệ
                if (code == "")
                {
                    MessageBox.Show("Mã máy bay chưa nhập");
                    return;
                }

                if (name == "")
                {
                    MessageBox.Show("Tên máy bay chưa nhập");
                    return;
                }

                if (_objPlaneRespository.IsExist_Code(code))
                {
                    MessageBox.Show("Mã máy bay đã tồn tại");
                    return;
                }

                if (_objPlaneRespository.IsExist_Name(name))
                {
                    MessageBox.Show("Tên máy bay đã tồn tại");
                    return;
                }
                //====================================================

                if (_objPlane != null)
                {
                    _objPlane.Code = code;
                    _objPlane.Name = name;
                    _objPlaneRespository.Update(_objPlane);
                    frmParent.RefreshDataGridView(false);
                    frmParent.isChanged = true;
                }
                else
                {
                    //Kiểm tra nếu code không trùng thì thêm mới
                    _objPlane = new Plane();
                    _objPlane.Code = code;
                    _objPlane.Name = name;
                    _objPlaneRespository.Insert(_objPlane);
                    frmParent.RefreshDataGridView(true);
                    frmParent.isChanged = true;
                    
                }

                ////============================================================
                ////2014-11-03
                ////Kiểm tra kiểu type của column 'name' đã cập nhật chưa trong table gpsdata.sdf
                //if (!GPSDataRepository.IsAlterColumn_Name()) //Nếu chưa cập nhật
                //{
                //    GPSDataRepository.AlterColumn_Name();
                //}
                ////Cập nhật dữ liệu
                //GPSDataRepository.UpdateColumnValue_Name(_objPlane.Code, _objPlane.Name);
                ////============================================================

                
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmPlane_Load(object sender, EventArgs e)
        {
            _objPlaneRespository = new PlaneRepository();
            if (_objPlane != null)
            {
                txtPlaneCode.Text = _objPlane.Code;
                txtPlaneName.Text = _objPlane.Name;
            }
        }

    }
}
